package cn.net.Stream;
/*本类测试 字符输入流 */
import java.io.*;
/*
总结大致分三步：1.声明并创建对象。（try/catch）
                2.使用流对象，采用while循环+in.read()方法读取对象
                3.关流。（try/catch）
 */
public class TestIn2 {
    public static void main(String[] args) {
        //method();//1.普通字符输入流
        method2();//2.高效字符输入流
    }

    private static void method2() {//高效的方法
        Reader in = null;//1.声明
        try {
            //2.创建流对象
            in = new BufferedReader(new FileReader("D:\\File\\1.txt")) ;//添加try/catch+抛出异常
            //3.使用流对象
            //3.1System.out.println(in.read());//读取一次；抛出异常
            //3.2 while循环读取文件内容，到返回-1结束循环
            int b; //定义变量。
            while((b=in.read())!=-1){//(b=in.read())
                System.out.println(b);// 输出打印内容
            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {//finally
            try {
                //4.关流
                in.close();//5.添加try/catch
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
    }

    private static void method() {//普通的方法
        //Reader in = new Reader();// Reader为抽象父类，不能实例化
        Reader in = null;//1.声明
        try {
            //2.创建流对象
             //in = new FileReader(new File("D:\\File\\1.txt"));//添加try/catch
            in = new FileReader("D:\\File\\1.txt");//添加try/catch+抛出异常
            //3.使用流对象
            //3.1System.out.println(in.read());//读取一次；抛出异常
            //3.2定义变量。读取到返回-1结束循环
             int b; //(b=in.read())
            while((b=in.read())!=-1){
                System.out.println(b);
              }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {//finally
            try {
                //4.关流
                in.close();//5.添加try/catch
            } catch (IOException e) {
                e.printStackTrace();
            }

        }

    }

}
